//-------------------------------------------------------------------
//	Copyright (c) 2010-2012 Zhirnov Andrey
//	This file is part of the "UXGEN" project.
//	See copyright notice in "Engine.h".
//-------------------------------------------------------------------

#ifndef _UX_VIDEO_ENCODER_H
#define _UX_VIDEO_ENCODER_H

#include <Includes.h>

namespace Engine
{
namespace RenderUtils
{

	//
	// Video Encoder
	//

	class IVideoEncoder
	{
	public:
		virtual ~IVideoEncoder() {}

		virtual bool  AddFrame(const binary_buffer_t &sFrame) = 0;
		virtual bool CreateStream(const char * pFileName, const uvec2 &vSize, uint uFrameRate, e_video_create::type eType = e_video_create::AUTO) = 0;
		virtual void  CloseStream() = 0;
		virtual uint  GetFramesCount()	const = 0;
		virtual uint  GetFrameSize()	const = 0;
		virtual bool  IsReady()			const = 0;
	};

//-------------------------------------------------------------------

}	// RenderUtils
}	// Engine

#endif	// _UX_VIDEO_ENCODER_H